home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib08.dsk / CASH REGISTER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  3KB  |  74 lines

  1. 1  REM  **********************
  2. 2  REM  *   CASH REGISTER    *
  3. 3  REM  *  BY LES SCHMELTZ   *
  4. 4  REM  * COPYRIGHT (C) 1982 *
  5. 5  REM  * BY MICRO-SPARC INC *
  6. 6  REM  * LINCOLN, MA. 01773 *
  7. 7  REM  **********************
  8. 80  HOME : VTAB (11): HTAB (8): INVERSE : PRINT "$$$ THE CASH REGISTER $$$": NORMAL 
  9. 90  PRINT : PRINT  TAB( 13);"BY LES SCHMELTZ"
  10. 100  FOR I = 0 TO 2000: NEXT 
  11. 110  DIM X(25): GOSUB 1000
  12. 120  HOME : PRINT : PRINT  TAB( 14);"TYPE OF SALE:": PRINT 
  13. 130  INPUT "1=CASH 2=CHARGE 3=REFUND 4=TOTALS 5=QUIT";TY
  14. 140  IF TY <1  OR TY >5  THEN   THEN  PRINT : PRINT "SELECT 1-5 ONLY.  RE-ENTER.": FOR I = 0 TO 2000: NEXT : GOTO 120
  15. 150  ON TY GOTO 200,200,500,700,900
  16. 200  REM  CASH/CREDIT SALE ENTRY
  17. 210 I = 1:S = 1:TS = 0
  18. 220  HOME : PRINT "PRESS RETURN AFTER EACH ITEM."
  19. 230  PRINT "ENTER 0 FOR LAST ITEM.": PRINT 
  20. 240  PRINT "ITEM #";I;"  ";: INPUT X(S)
  21. 250  IF X(S) = 0  THEN  GOTO 280
  22. 260 I = I +1:S = S +1: GOTO 240
  23. 270  REM  TOTAL THIS SALE
  24. 280  FOR S = 1 TO I:TS = TS +X(S): NEXT S
  25. 290  PRINT : PRINT : PRINT  TAB( 8);"TOTAL SALE:  ";TS
  26. 300  IF ST$ = "Y"  THEN TX =  INT((TS *TP/100) +.5 *100)/100: PRINT : PRINT  TAB( 9);"SALES TAX:  ";TX:TS = TS +TX: PRINT : PRINT " TOTAL AMOUNT DUE:  ";TS
  27. 310  IF TY = 2  THEN  GOTO 400
  28. 320  PRINT : INPUT "  AMOUNT TENDERED:  ";TD
  29. 330  PRINT : PRINT  TAB( 12);"CHANGE:  ";TD -TS
  30. 340 IT = IT +I:GT = GT +TS:TT = TT +TX
  31. 350  PRINT : PRINT "PRESS ANY KEY TO CONTINUE": GET Z$
  32. 360  GOTO 120
  33. 400  REM  CHARGE SALES
  34. 410 IT = IT +1:CT = CT +TS:TT = TT +TX
  35. 420  PRINT : PRINT "PRESS ANY KEY TO CONTINUE": GET Z$
  36. 430  GOTO 120
  37. 500  REM  REFUND/CREDIT ROUTINE
  38. 510  HOME : PRINT "PRESS RETURN AFTER EACH ITEM."
  39. 520  PRINT "ENTER 0 FOR LAST ITEM.": PRINT 
  40. 530 I = 1:S = 1:TS = 0
  41. 540  PRINT "ITEM #";I;"   ";: INPUT X(S)
  42. 550  IF X(S) < >0  THEN I = I +1:S = S +1: GOTO 540
  43. 560  FOR S = 1 TO I:TS = TS +X(S): NEXT S
  44. 570  PRINT : PRINT "TOTAL OF ITEMS: ";TS
  45. 580  IF ST$ = "Y"  THEN TX =  INT((TS *TP/100) +.5 *100)/100: PRINT  TAB( 6);"SALES TAX:  ";TX: PRINT "  TOTAL CREDIT:  ";TS +TX
  46. 590  PRINT : PRINT "SELECT: 1=CASH REFUND  2=CREDIT TO ACCT": INPUT RF
  47. 600  IF RF = 1  THEN IT = IT -I:GT = GT -TS:TT = TT -TX: GOTO 620
  48. 610 IT = IT -1:CT = CT -TS:TT = TT -TX
  49. 620  PRINT : PRINT "PRESS ANY KEY TO CONTINUE": GET Z$
  50. 630  GOTO 120
  51. 700  REM  PRINT TOTALS
  52. 710  HOME : VTAB (3): PRINT  TAB( 14);: INVERSE : PRINT "SALES SUMMARY": NORMAL 
  53. 720  PRINT : PRINT  TAB( 19);"ITEMS ";IT
  54. 730  PRINT :X = GT: GOSUB 910:GT$ = X$: PRINT  TAB( 14);"CASH SALES:"; TAB( TB);GT$
  55. 740  PRINT :X = CT: GOSUB 910:CT$ = X$: PRINT  TAB( 12);"CREDIT SALES:"; TAB( TB);CT$
  56. 750  PRINT :X = GT +CT: GOSUB 910: PRINT  TAB( 16);"SUBTOTAL:"; TAB( TB);X$
  57. 760  IF ST$ = "Y"  THEN  PRINT :X = TT: GOSUB 910:TT$ = X$: PRINT  TAB( 15);"SALES TAX:"; TAB( TB);TT$
  58. 770  PRINT :X = GT +CT +TT: GOSUB 910: PRINT  TAB( 10);"TOTAL RECEIPTS:"; TAB( TB);X$
  59. 780  PRINT : PRINT : PRINT  TAB( 10);"PRESS ANY KEY FOR MENU": GET Z$
  60. 790  GOTO 120
  61. 900  END 
  62. 910  REM  ROUTINE TO JUSTIFY DISPLAY
  63. 920 X$ =  STR$(X)
  64. 930  FOR I = 1 TO  LEN(X$)
  65. 940  IF  MID$ (X$,I,1) = "."  THEN J = I
  66. 950  NEXT I
  67. 960  IF J =  LEN(X$)  THEN X$ = X$ +".00"
  68. 970  IF J =  LEN(X$) -1  THEN X$ = X$ +"0"
  69. 980 TB = 33 - LEN(X$)
  70. 990  RETURN 
  71. 1000  REM  SELECT SALES TAX ROUTINE
  72. 1010  HOME : VTAB (11): INPUT "INCLUDE SALES TAX? (Y/N)";ST$
  73. 1020  IF ST$ = "Y"  THEN  PRINT : INPUT "TAX PERCENTAGE? (0-10):";TP
  74. 1030  RETURN